#include <iostream>
#include <algorithm>

long long n, m, k;

bool judge(long long x)
{
	long long count = 0;
	for (int i = 1; i <= n; i++)
		count += std::min(m, x / i);
	return count >= k;
}

int main()
{
	std::cin >> n >> m >> k;
	long long l = 1, r = n * m;
	while (l + 1 < r) {
		long long mid = (l + r) / 2;
		if (judge(mid)) r = mid;
		else l = mid;
	}
	if (judge(l)) r = l;
	std::cout << r << '\n';
}

